package com.component.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.component.domain.Note;
import com.component.domain.vo.NoteStatusVo;

import java.io.Serializable;
import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * @author Xiongx
 * @version 1.0
 * @date 2021/6/6 0:19
 * @since JDK 1.8
 *
 * 内容标题服务层
 */
public interface NoteService extends IService<Note> {

    public Integer getNoteCountByChannelId(Serializable id);

    public Note getById(Serializable id);


    public boolean updateById(Note entity);


    Integer updateNoteChannel(String channelId, List<String> ids);

    /**
     * 内容分页列表
     * @param page 页码
     * @param size  条数
     * @param keyword  关键字
     * @return  分页列表数据
     */
    IPage<Note> notePageListByKeyWord(Integer page, Integer size, String channelId, String keyword, Map<String,Object> query,Boolean isPri);

    /**
     * 增加一条笔记阅读记录
     * @return
     */
    Integer addOneNoteReadCountByNid(Integer nid);

    /**
     * 分页搜索
     * @param channelId 栏目id
     * @param tag       标签
     * @param title     标题
     * @param beforeDate 在...之前
     * @return
     */
    IPage<Note> pageIPage(Integer pageNum,Integer pageSize,String channelId, String tag, String title, Date beforeDate);

    /**
     * 通过栏目查询文章
     * @param channelId 栏目id
     * @param total     条数
     * @return
     */
    List<Note> channelList(String channelId,int total);

    /**
     * 获取需要交换的文章数据
     * @return
     */
    List<Note> getChangeNoteList();

    /**
     * 设置状态
     * @param noteStatusVo
     * @return
     */
    Boolean setStatus(NoteStatusVo noteStatusVo);

    /**
     * 智能搜索词
     * @param keyword
     * @return
     */
    List<Map<String,Object>> searchKeywordList(String keyword);

}
